package com.liangtian.mdm.material.service;

import com.github.pagehelper.PageInfo;
import com.liangtian.mdm.material.model.WlLbmbTzlfh;
import com.liangtian.mdm.material.model.WlLbmbtzl;
import com.liangtian.mdm.material.model.WlLbmbtzlDto;

import java.util.List;
import java.util.Map;

public interface WlLbmbtzlService {

    public int getWlLbmbtzlListCountByCond(WlLbmbtzl tzl);

    public List<WlLbmbtzlDto> getWlLbmbtzlDtoList(String wlLbmbId);

    @SuppressWarnings("rawtypes")
    public PageInfo getWlLbmbtzlListByCond(Map<String, Object> map);

    public Map<String, Object> getWlLbmbtzlById(WlLbmbtzl tzl);

    @SuppressWarnings("rawtypes")
    public PageInfo getWlLbmbTzlfhByCond(Map<String, Object> map);

    @SuppressWarnings("rawtypes")
    public PageInfo getWlLbmbTzlJldwByCond(Map<String, Object> map);

    public int getTzlFhAddCount(WlLbmbTzlfh tzlfh);

    public int insertWlLbmbTzlfh(WlLbmbTzlfh tzlfh);

    public int deleteWlLbmbTzlfh(Map<String, Object> map);

    public int getAddMbTzlCountByTzlmc(WlLbmbtzl tzl);

    public int insertWlLbmbtzl(WlLbmbtzl tzl);

    public WlLbmbtzl getMbTzlById(WlLbmbtzl tzl);

    public int checkEditMbTzlCount(Map<String, Object> cond);

    public void updateWlLbmbtzl(WlLbmbtzl tzl);

    public int updateWlLbmbtzlByMap(Map<String, Object> map);

    public int deleteWlLbmbTzlfhByTzlid(Map<String, Object> map);

    /**
     * <p>TODO  这个方法是删除特征量的方法</p>
     * <p>@param map
     * <p>@return </p>
     *
     * @author : xiaoliu
     * @date :2017年12月22日下午5:00:59
     */
    public int deleteWlLbmbTzlByMap(Map<String, Object> map);

    /**
     * 物料申请页查找物料类别模板下的有效特征量数据，同时取出了特征量的前置、后置、连接符号以及部分取值数据
     *
     * @param wlLbmbId 物料类别模板ID
     * @return
     * @author jiangyh
     * @date 2016-12-15
     */
    public List<WlLbmbtzlDto> getWlLbmbtzlDtoListForApplyPage(String wlLbmbId, boolean flag);

    /**
     * 根据条件查询特征量的关联特征量
     *
     * @param map
     * @return
     * @author jiangyh
     * @date 2016-12-15
     */
    public List<String> getWlLbmbTzlGl(Map<String, Object> map);

    /**
     * 查找物料类别模板下的有效特征量数据
     *
     * @param cond
     * @return
     * @author jiangyh
     * @date 2016-12-15
     */
    public List<WlLbmbtzl> getWlLbmbtzlLanListSimple(Map<String, Object> cond);

    /**
     * 根据模板id查询模板数据
     *
     * @param id 物料类别模板ID
     * @return
     * @author jiangyh
     * @date 2016-12-23
     */
    public WlLbmbtzl getWlLbmbtzlById(String id);

    /**
     * 根据条件查询模板特征量
     *
     * @param cond
     * @return
     * @author jiangyh
     * @date 2016-12-28
     */
    public List<WlLbmbtzl> getWlLbmbtzlByCond(Map<String, Object> cond);

    /**
     * 根据模板id查找物料类别模板下的有效特征量数据
     *
     * @param cond
     * @return
     * @author jiangyh
     * @date 2017-03-21
     */
    public List<WlLbmbtzl> getWlLbmbtzlListSimple(String wl_lbmb_id);

    public int getTzlMaxXh(WlLbmbtzl tzl);

}
